From 5945aea4b04d90274e263731cde180bf4d3fafd9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=98yvind=20Kol=C3=A5s?= Date: Sun, 18 Mar 2012 02:52:00 +0000 Subject: [PATCH] palette: initialize with 8bit fast path buffer --- babl/babl-palette.c | 4 +++- tests/palette.c | 33 +++++++++++++++++++++++++++------ 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/babl/babl-palette.c b/babl/babl-palette.c index a904eb8..3b0c84c 100644 --- a/babl/babl-palette.c +++ b/babl/babl-palette.c @@ -44,6 +44,8 @@ static BablPalette *make_pal (Babl *format, void *data, int count) memcpy (pal->data, data, bpp * count); babl_process (babl_fish (format, babl_format ("RGBA double")), pal->data, pal->data_double, count); + babl_process (babl_fish (format, babl_format ("RGBA u8")), + pal->data, pal->data_u8, count); return pal; } @@ -108,7 +110,6 @@ rgba_to_pal (char *src, void *dst_model_data) { BablPalette *pal = dst_model_data; - while (n--) { int idx; @@ -343,6 +344,7 @@ Babl *babl_new_palette (const char *name, int with_alpha) babl_type ("u8"), babl_component ("I"), NULL); +if(1) babl_conversion_new ( format, babl_format ("RGBA u8"), diff --git a/tests/palette.c b/tests/palette.c index afd52f9..7dbf74f 100644 --- a/tests/palette.c +++ b/tests/palette.c @@ -54,7 +54,6 @@ main (int argc, { int OK = 1; babl_init (); - { unsigned char in[][1] = {{ 0},{ 1},{ 2},{15}}; unsigned char out[][4] = {{0,0,0,255},{127,0,0,255},{0,127,0,255},{255,255,255,255}}; @@ -65,6 +64,7 @@ main (int argc, palA, babl_format("RGBA u8"), in, out); + CHECK_CONV("pal to rgba", unsigned char, palB, babl_format("RGBA u8"), in, out); @@ -92,7 +92,7 @@ main (int argc, in, out); } - /* check with a custom floating point palette */ + /* check with a custom floating point palette, _and_ alpha component */ { float palette[] = { 0.5, 1.0, @@ -100,18 +100,19 @@ main (int argc, 1.0, 0.2 }; - unsigned char in[][1] = {{ 0},{ 1},{ 2}}; - unsigned char out[][4] = {{128,128,128,255},{59,59,59,107},{255,255,255,51}}; + unsigned char in[][2] = {{ 0,255},{0,127},{ 1,255},{ 2,255}}; + unsigned char out[][4] = {{128,128,128,255},{128,128,128,127},{59,59,59,107},{255,255,255,51}}; - Babl *pal = babl_new_palette (NULL, 0); + Babl *pal = babl_new_palette (NULL, 1); babl_palette_set_palette (pal, babl_format ("YA float"), palette, 3); - CHECK_CONV("rgba to YA float pal", unsigned char, + CHECK_CONV("rgba to YA float pal+alpha", unsigned char, pal, babl_format("RGBA u8"), in, out); } + /* check with a custom floating point palette, _and_ alpha component */ { float palette[] = { @@ -132,6 +133,26 @@ main (int argc, in, out); } + /* check with a custom floating point palette */ + { + float palette[] = { + 0.5, 1.0, + 0.23, 0.42, + 1.0, 0.2 + }; + + unsigned char in[][1] = {{ 0},{ 1},{ 2}}; + unsigned char out[][4] = {{128,128,128,255},{59,59,59,107},{255,255,255,51}}; + + Babl *pal = babl_new_palette (NULL, 0); + + babl_palette_set_palette (pal, babl_format ("YA float"), palette, 3); + + CHECK_CONV("rgba to float pal", unsigned char, + pal, babl_format("RGBA u8"), + in, out); + } + babl_exit (); return !OK; } -- 2.30.2